<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <!-- 
        生成器函数是 ES6 提供的一种异步变成解决方案,语法行为与传统函数完全不同

     -->

    <script>
        function * gen (arg) {
            console.log(arg) // AAA
            let one = yield 111 
            console.log(one) // BBB

            let two = yield 222
            console.log(two) // CCC

            let three = yield 333
            console.log(three) // DDD
        }

        //执行获取迭代器对象
        let iterator = gen('AAA')
        console.log(iterator.next())
        //next方法可以传入实参
        console.log(iterator.next('BBB')) //第二次传入实参 将作为第一个yield的语句整体的返回结果
        console.log(iterator.next('CCC')) //第三次传入实参 将作为第二个yield的语句整体的返回结果
        console.log(iterator.next('DDD')) //第四次传入实参 将作为第三个yield的语句整体的返回结果
    </script>
</body>
</html>